import $ from 'jQuery'
import Promise from 'bluebird'
const codeMessage = {
  200: '服务器成功返回请求的数据',
  201: '新建或修改数据成功。',
  202: '一个请求已经进入后台排队（异步任务）',
  204: '删除数据成功。',
  400: '发出的请求有错误，服务器没有进行新建或修改数据,的操作。',
  401: '用户没有权限（令牌、用户名、密码错误）。',
  403: '用户得到授权，但是访问是被禁止的。',
  404: '发出的请求针对的是不存在的记录，服务器没有进行操作',
  406: '请求的格式不可得。',
  410: '请求的资源被永久删除，且不会再得到的。',
  422: '当创建一个对象时，发生一个验证错误。',
  500: '服务器发生错误，请检查服务器',
  502: '本地网络中断请稍后再试',
  503: '服务不可用，服务器暂时过载或维护',
  504: '网关超时',
}
var token = window.localStorage.getItem('hq_store_token')
if (token !== undefined && token !== 'undefined' && token !== '' && token !== null) {
    token = token;
} 
// 全局配置ajax
$.ajaxSetup({
  dataType: "json",
  cache: false,
  headers: {
    "token": token,
  },
  // 开启cors
  xhrFields: {
    withCredentials: true
  },
  timeout: 10000,
  beforeSend: (xhr) => {
    // 数据加载成功之前，使用loading组件
    console.log('显示loidng')   
  },
  complete: (xhr) => {    
    if (!xhr.responseJSON) {
      return false
    }
    //token过期，则跳转到登录页面
    if (xhr.responseJSON.code == 401) {
      window.location.href = baseURL + 'login';
    }
    //超时,status还有success,error等值的情况
    if (status == 'timeout') {
      xhr.abort()
      console.log("网络超时请检查下网络");
    }
  }
})
class Ajax {
  static Get(param) {
    return new Promise((resolve, reject) => {
      $.ajax({
        url: param.url,
        type: 'get',
        data: param.data || '',
        success: (data) => {          
          console.log('隐藏loidng')    // 数据加载成功之前，使用loading组件        
          resolve(data);
        },
        error: (error) => {
          reject(codeMessage[error.status])
        }
      })
    })
  }
  static Post(param) {
    return new Promise((resolve, reject) => {
      $.ajax({
        url: param.url,
        type: 'post',
        data: param.data || '',
        success: (data) => {
          console.log('显示loidng')    // 数据加载成功之前，使用loading组件
          resolve(data);
        },
        error: (error) => {
          reject(codeMessage[error.status])
        }
      })
    })
  }
}
export default Ajax